package com.itheima.mapper;

import com.itheima.pojo.Emp;
import com.itheima.pojo.EmpRequestParam;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * 员工管理Mapper
 * */
@Mapper
public interface EmpMapper {
    /**
     * 分页查询员工
     * */
    List<Emp> list(EmpRequestParam empRequestParam);

    /**
     * 添加员工的基本信息
     * */
    void insert(Emp emp);

    /**
     * 批量删除员工基本信息
     * */
    void deleteByIds(List<Integer> ids);

    /**
     * 根据id查询员工基本信息
     * */
    Emp selectById(Integer id);

    /**
     * 更新员工基本信息
     * */
    void update(Emp emp);

    /**
     * 查询员工性别报表数据
     * */
    @MapKey("gender")
    List<Map<String, Object>> getEmpGenderReport();

    /**
     * 查询各职位员工人数报表数据
     * */
    @MapKey("jobs")
    List<Map<String, Object>> getEmpJobReport();

    /**
     * 查询所有员工
     * */
    @Select("select * from emp")
    List<Emp> selectAll();

    /**
     * 根据用户名查询用户信息
     * */
    @Select("select * from emp where username = #{username}")
    Emp selectByUsername(String username);

    /**
     * 根据部门id查询员工数量
     * */
    @Select("select count(*) from emp where dept_id = #{id}")
    Integer selectByDeptId(Integer id);
}
